Trickster, ну так будет 100р?
В карте испоганен заголовок и хешьтаблица и удалены данные об обьектах, поэтому она не открывается ничем кроме зезулы, но зезула не дает возможность редактировать файлы. Ну собственно я это дело снял, могу восстановить открываемость в редакторе..
Первая рпгшка со слабой hex защитой, повреждение заголовка, спокойно открывается что ладиком что RMPQ, код смесь гуи + vjass систем, данные о войсках на карте и триггерах удалены, в коде не сжаты имена (автор не знает про тулы векса), вторая карта тоже самое.
Сломать их раз плюнуть, рассказывать как и зачем я не буду, инфы пруд пруди.
карта "защищена"
простыми способами нельзя переводить и вообще в редакторе открывать, в теории можно в редакторе открыть, но нужен полный листфайл, который надо часами/днями восстанавливать специальной утилитой (а судя по тому что там сотни неизвестных файлов, на это уйдет очень много времени)
Ну и конечно есть ещё вариант - это редактирование scripts\war3map.j и war3map.wts
Первый это скрипт карты, через поиск " можно найти все строки
Второй это хранилище строк НО
Ещё придется редактировать объектные файлы: w3a, w3u, w3t и т.д., полный список есть в статьях по форматам данных
А если в редакторе карту не открыть без последствий - то придется пересаживать эти объектные файлы в другую карту (вместе с war3map.wts, т.к в объектных файлах могут ссылки на строки), там всё перевести и перекинуть обратно в исходник
Maxsavin, молодые, зеленые, все то вам объяснять надо.
Берете карту, делаете копию, вычищаете из неё триггер за триггером, юнита за юнитом, кусочек карты за кусочком, пока либо не пройдет баг, либо в карте не останется ничего, что бы вы не были готовы показать. Да, проверять надо после каждого удаления, а не удалять все скопом. Да, это долго, но другого способа нет.
В первом случае (баг прошел после очередного удаления) - причина найдена и можно детально исследовать.
Во втором случае (удален весь "секретный" контент, а баг остался) - можно смело показывать карту и просить помощи.
P.S. главное не забыть, что удалять надо из копии карты, а не из единственного существующего исходника. Ответственности за потерю единственной рабочей версии в результате неправильного использования этого метода не несу.
что за костыли блин
событие - приводит способность в действие
условие - применённая способность == божественный щит
действия:
unit u=GetTriggerUnit()
SetUnitVertexColor(u,0,0,0,255)
TriggerSleepAction(15) // здесь указываем время действия способности
SetUnitVertexColor(u,255,255,255,255)
если время действия зависит от уровня то юзай арифметику как писали выше
в твоём случае это 2 + (уровень способности * 2)
Нужно внимательнее читать правила. Все проекты, которые видны другим пользователям, проходят премодерацию - модератор должен утвердить вносимые изменения. Обычно это простая формальность и нужно просто дождаться модератора.
Дать/отнять способность легко. А вот как отследить это, что он отошел и прочее. Надо подумать, нужно делать так, чтобы утечек, и нагрузок было меньше. Смотря как делать:
юнит привязан к участку
Если привязан юнит к одному участку, как здание например. То можно по событию - юнит входит / юнит выходит в область. Это типа как в Survival Chaos, там башеньки всю игру стоят, пока всех не уничтожат.
не может привязан к одному участку. Но есть несколько способов:
Вот отследить еще можно "событие - юнит замечен в радиусе ...", только вот нельзя отследить когда отходит, только когда входит. Примечательно, тем то не привязан к участку.
Проверяешь периодически расстояние между юнитом и героем. Если расстояние больше предназначенного, то убавляем защиту. В этом нам помогает группа +pick units и подсчет кол-ва юнитов.
Аналогично как в во втором способе, но может еще попробовать с аурой. Проверяешь есть аура. нет ауры.
Смысла тогда нет, все умные игроки будут убивать захваченного юнита до того, как он перейдёт назад к своему владельцу. Лучше сразу убивать.
Ниже карта, где реализовано с убийством по истечению указанного времени.
Событие - получает прдмет
Условие - прдмет который надо
Действие - Создать юнит, либо замнетить(прверащение): так же вариант, когда подбирает нужный предмет, давать скил трансформа и приказать его заюать
Будет на несколько сек грузится быстрее, будут меньше просадки фпс при вручении абилок если они неподгружены и так далее.
Вес упадет немного, но упадет.
Тестил, тестил. Думал найду ошибку. Короче не знаю в чем дело, видимо и в правду баг. Решил по-другому. Ловить поставку, и ловить продажу. То есть ловить то, что пришло, и то, что ушло.
событием - "юнит закладывает в лавку" (EVENT_PLAYER_UNIT_PAWN_ITEM) ловим продажу итемов.
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)
событием - "юнит закладывает из лавки (продает артефакт)" (EVENT_PLAYER_UNIT_SELL_ITEM) ловим покупку итемов
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Решил, я по-своему. Короче, видимо, итем в магазине исчезает при добавлении. Попробовал запоминать все добавленные итемы, и при добавлении я сначала удалю всё в магазине, а потом заново добавлю. Пришлось, еще порядок (номер слотов) запоминать, а то строятся ключи хэша на строгом порядке. Если возьму и заберу итем посередине, придется заново выстраивать порядок. Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.
сдается мне, что это не возможно без костылей, или же эту фичу юзали все картоделы :\
можно приподнимать декорации с помощью cntrl или shit + page down/page up, но это сугубо визуально, физически они будут все равно размещены внизу
на ум приходит только установка необходимой высоты всем проходящим по верхней стороне юнитам, но там будет другой геморрой (к примеру, если по мосту бежит несколько пехотинцев, враждебных друг другу, пехотинцы на верхней стороне не смогут быть атакованы, так как будут считаться "летающими")
так disable collision же, не?
правда, иногда затупливает, но в целом действует
ну затупливает в основном из-за деревьев и зданий. А у зданий и деревьев есть текстура пути, из-за нее затупливает. Astra:
а разве коллизия позволяет проходить сквозь деревья?
да, ссылка - можно скачать и посмотреть карту про тесты мои
проходимость
На юнитах лучше указать "Движение - Тип движения" - "Нет". Это тоже самое что и disable collision. Тогда юнит через других юнитов, декор, ландшафт свободно перемещаются. Затупливать могут на деревьях или зданиях.
На зданиях лучше указать "Движение - Тип движения" - "Нет" и "Пути - Карта путей" - Портал или Нет (какая-либо другая текстура может блокировать проход). Тогда юниты через это свободно перемещаются.
создай дерево без текстур пути (здесь тоже текстура пути блокирует проход). можно попробовать помутить с блокираторами пути.
дать способность на проходимость
Способность Ghost (Visible) 'Aeth' - проходимость через него самого, сам юнит видим.
Способность Ghost 'Agho' - проходимость через него самого, сам юнит невидим.
Моя тень не может проходить насквозь юнитов, а вот другие юниты могут через мою тень ходить. если всем дать, то тогда они через друг друга проходят. Я просто думал юнит сможет ходить через всех, но это не так, через тех, у кого нет этой абилы, не пройдешь
дают проходимость москиты 'Aloc', не имеет никаких преград
стремительность. проходит через юнитов, через здания, декорации не может. Ландшафт тоже является преградой.
Физический размер. Кто-то писал что можно настроить физ. размер так, чтоб проходил. Так ни фига не работает. Эта позволяет только ходить через узкие проходы (если они есть), как TD-шках.
Они воспроизводят анимации эффект, смотри в константах. Там они на все виды анимаций расписаны. Короче, это как SetUnitAnimation, но только для эффектов.
Оказывается причина была намного сложнее)))
Тот самый триггер-комментарий был обычным триггером (т.е хранил всю информацию о действиях и т.д), но отображался как комментарий
Поэтому помогло только его удаление
Увы нет, смотреть из за чего ошибка и потом смотреть что в коде могло её вызвать.
Так же нелишним будет собрать статистику а что именно происходило в этот момент и изучать код, кторый работал в этот момент.
Фаталить могут даже дефолтные способности.
FrigatPlay, то то и оно, она при загрузке фаталит, хотя нормально открывается в редакторе.
Копируй код из нее в другую карту, там нету ретурн бага, гуи онли... Но почему то фаталит, в логе написано что карта стартует без единого игрока, конфиг чтоли запорот...
Увы нет, смотреть из за чего ошибка и потом смотреть что в коде могло её вызвать.
Так же нелишним будет собрать статистику а что именно происходило в этот момент и изучать код, кторый работал в этот момент.
Фаталить могут даже дефолтные способности.
FrigatPlay, то то и оно, она при загрузке фаталит, хотя нормально открывается в редакторе.
Копируй код из нее в другую карту, там нету ретурн бага, гуи онли... Но почему то фаталит, в логе написано что карта стартует без единого игрока, конфиг чтоли запорот...
Перекинь весь импорт из карты в кампанию, и в преть не кидай в карту импорт. У меня была такая же проблема. По сути оно должно работать и с импортом в карте, но вот почему-то случай от случая багается.
В саму карту заливай только картинку загрузочного экрана. Ну и постарайся приложить больше усилий к созданию кампании, посмотри примеры. Тот же баг со звуком, он у тебя стоит сразу после инициализации карты, а ведь в триггере написано, что звук не может работать сразу после инициализации. Я сам люблю играть и делать кампании, потому если что обращайся с вопросами, но постарайся и сам учиться, а так же прикладывать максимум усилий.
Для начала создаешь способность вампиризма, например с 4 уровнями.
1 уровень - 25%
2 уровень - 50%
3 уровень - 75%
4 уровень - 100% вампиризма.
Если нынешнее здоровье героя деленное на максимальное здоровье этого же героя < 0,25 - делаем четвертый уровень способности.
Если нынешнее здоровье героя деленное на максимальное здоровье этого же героя < 0,50 - даем третий уровень способности
И т.д.
Редактор на инглише от рефорджа. С переводчиком что-то не получается сделать.
Все разобрался
Events
MapInitializationEvent()
Conditions
OperatorComparePlayerSlotStatus((GetPlayerSlotState()Player 2 (Blue))), Not equal to, Is playing)
Actions
Unit - RemoveUnit()Пехотинец 0018 <gen>)
стремиться создавать объекты не на карте, а в триггерах, сохраняя ссылки на нужные из них;
там, где в гуи открываются окна со списком из РО, использовать джасс и вводить равкод, а там, где список расставленных на карте юнитов, использовать переменные;
в РО с полями, где указаны объекты, работать через Shift+Enter и вводить равкод, чтобы не открывать список.
Trickster, ну так будет 100р?
В карте испоганен заголовок и хешьтаблица и удалены данные об обьектах, поэтому она не открывается ничем кроме зезулы, но зезула не дает возможность редактировать файлы. Ну собственно я это дело снял, могу восстановить открываемость в редакторе..
Я знаю только один способ избавления от утечек - писать код без них.Тебе нужен кто-то знающий игровые скрипты или злосчастный Jass. Иначе уровень неопределённости вопроса не позволит подсказать что-то дельное.
Tand, под кодировкой я имею в виду кодировку. Есть такая штука, определяет какими комбинациями нулей и едениц в бинарном виде кодируется каждый символ. Если при сохранении использована не та кодировка, которую понимает игра, то игра, соответственно, неможет сопоставить нулям и еденицам из файла конкретные символы, а значит ничего не показывает или показывает совсем не то, что было написано изначально.
Скачай Notepad++ -встроенные в винду средства годятся разве что заметки о жизни офисного планктона писать.
Ты же понимаешь что под это описание подходит почти каждая ORPG прошлого? Как вариант могу предложить SOLs rpg, Помню ещё одну там ещё лошадей покупать можно было и там и правда город посередине но тоже забыл название. Описывай более особенные вещи или ищи сам вот тут www.epicwar.com/maps/search/?n=orpg&go=1
Увы но нет... Главная особенность той карты что все герои открываются по мере накопления очков за игру на карте, они не открыты сразу и не походу первой катки открываются а лишь с накоплением общих баллов. Я весь мозг сломал уже, в попытках вспомнить. Эх...
вариант А - тупо добавить аним.таг юниту, его свойства не изменятся, просто будет выглядеть как медведь
вариант Б - делать абилки в спеллбуке пермаментными, тогда они не будут пропадать
юзать мемхак, но с текущими познаниями кода куда легче просто создавать дамми строителя над основным, и удалять его, если он улетает от основного дальше чем на 400, и сразу выделять опять основного
других способов нет, не было и не будет
Пиши в переменные просто.
З.Ы.
Русифицированные триггеры, а карту делаешь на английском, это какая-то новая форма извращений?
Они не русифицированные. Это текста самого редактора на русском из-за русского варика("приводит способность в действие"), но все действия и условия на английском.
Куда в переменную? Даже если сделаю так, то мне нужно уровень этих способностей в новой форме устанавливать, а я не знаю какой ивент для этого выбрать, потому что при стандартных ивентах к этой способности, уровни устанавливаются только при обратной активации.
Ну, если ты всё на том же 1.26 - то без огромных костылей - никак. А на последующих патчах - можно что-нибудь куда-нибудь прикрутить...
Если ты хочешь ману именно как ресурс игрока на равне с золотом и деревом - то вероятно никакого отображения у тебя не будет. Лучшее что можно предложить - просто считать где-то эту ману, выводить её в мультиборд, что бы игрок видел сколько её имеется. А при попытке что-то строить - проверять сколько этой самой маны у игрока есть (т.е. записано).
При этом попутно можно придумать кучу механик завязанных на получении и расходе этой маны, что б уж совсем отойты от стандартных ценников и ограничений связанных с ними.
Способ 1
Отлавливаешь событие на постройку/про-ва юнита.
В условиях чекаешь ману строителя/производителя.
Если маны меньше чем надо, командуешь отмену.
Способ 2
Даешь спелбук в котором куча абилок на основе канала с настроенной способностью "продажа/поставка ресурсов".
Настраиваешь стоимость по ресурсам и мане.
Даешь отлов на каст абилки и т.д.
Способ 3
Если только на мане нужна механика.
(Например раса пустотников из некоторых версий ЗБ Классик и ЗБ РВ)
То просто создавай спелбук, где лежат абилки на основе призывов духа воды/волков и т.д.
И спелбук с абилками на основе канала настроенные как игрушечные башни.
В здания можно вмонтировать абилки на основе канала, которые активирует триггерно приказ проводить юнита.
Про-во юнита можно натсраивать на set unit limit и issue order train unit, но это могут заэксплоитить, поэтому тут нужна тонкая настройка или применить наработку параллельного про-ва юнитов, которая тут на сайте есть.
» WarCraft 3 / Как открыть карту в редакторе?
» WarCraft 3 / Проблема с картой
» WarCraft 3 / Помогите настроить событие триггера
» Администрация XGM / Баг
» WarCraft 3 / Помогите создать способность.
» WarCraft 3 / Как создать юнит...?
» WarCraft 3 / Картинка
» WarCraft 3 / Продажа предмета
» WarCraft 3 / Устрашение
» WarCraft 3 / Сохранить ресурс
» WarCraft 3 / Патч 1.30 / Проблема с кампанией "Рассвет Эльфов Крови 3.0"
» IrInA Host Bot / Не запускается.
» WarCraft 3 / Как играть в старый варик?
» WarCraft 3 / Как играть в старый варик?
» WarCraft 3 / Модель неба
» WarCraft 3 / Не запускается редактор
» WarCraft 3 / Помогите создать триггер
» WarCraft 3 / Не работает редактор карт
» WarCraft 3 / Не открывается карта в редакторе
» WarCraft 3 / Триггер на проверку слотов игроков.
» WarCraft 3 / Текст из файла
» WarCraft 3 / Помогите найти карту!
» WarCraft 3 / Форма медведя
» WarCraft 3 / Новая мана
» IrInA Host Bot / викторина